iT邦幫忙

2023 iThome 鐵人賽

0
DevOps

跟著菜鳥手把手用Docker建立服務系列 第 19

Day19 - 菜鳥們來研究 Docker Compose 指令

  • 分享至 

  • xImage
  •  

前面幾天大致上介紹基本的概念及設計方式,最後最重要的是要實際操作,才能更了解 Docker Compose 使用方式,話不多說我們開始吧 /images/emoticon/emoticon08.gif


Docker Compose 常用指令

  • docker-compose pull
    如果你的 docker-compose.yaml 文件中定義了服務使用的映像,但這些映像還未被拉取到本地系統,你可以運行 docker-compose pull 以從相應的容器註冊表(例如 Docker Hub)上拉取這些映像

  • docker-compose build
    如果你的 docker-compose.yaml 文件中定義了服務使用的是本地的 Dockerfile,或者希望重新構建映像,可以使用 docker-compose build

  • docker-compose run
    這個指令基本上跟docker run是一樣的。只是這個指令會一次建立所有的 container。當然,所使用的 image 就是透過前一個指令所建立出來的

  • docker-compose up
    這個指令其實就是docker-compose build + docker-compose run。因此,如果你確定你的設定檔正確無誤的話,可以直接跑這個指令。非常方便!

  • docker-compose images
    這個命令將顯示出每個服務的映像信息,包括服務名稱、映像 ID、創建時間、以及相應的 Dockerfile 和構建上下文的路徑。這對於檢查和管理 Docker Compose 文件中定義的服務所使用的映像非常有用。

  • docker-compose ps
    這個指令會列下所有的 container

  • docker-compose stop
    這個指令會停止所有的 container

  • docker-compose down
    這個指令會停止並刪除所有的 containers、images、networks 等等


  1. docker-compose pull
    docker-compose.yaml

    services:
      flask:
        image: rapidfort/flaskapp
        environment:
          - REDIS_HOST=redis-server
        networks:
          - backend
          - frontend
    
    networks:
        backend:
        frontend:
    

    docker-compose pull
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512jgD2ZdJRsd.png
    docker image ls -a 查看Image是否有建立成功
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512hlREx5d9kp.png

  2. docker-compose build
    docker-compose.yaml

    services:
      web: 
        build:
          context: app
          target: builder
        stop_signal: SIGINT
        ports:
          - '8000:8000'
    
    • context: app => Dockerfile路徑

    docker-compose buid
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512TgHeigrEuF.png

    docker image ls -a 查看Image是否有建立成功
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512rR6wZv5DvR.png

  3. docker-compose run
    docker-compose run 'Service Name'
    https://ithelp.ithome.com.tw/upload/images/20240111/201585125CqI5m9gI9.png
    docker ps -a 查看是Container否有成功啟動
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512nlub6r96KE.png

  4. docker-compose up
    docker-compose buid -d
    https://ithelp.ithome.com.tw/upload/images/20240111/2015851241t7Lp1zFv.png
    docker ps -a 查看是Container否有成功啟動
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512h7Gaghr79a.png

  5. docker-compose images
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512xohY0hf4tv.png

  6. docker-compose ps
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512yny9kC3JyZ.png

  7. docker-compose stop
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512nN7R1LBxZW.png

    docker-compose ps查看Container否有停止啟動
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512WuEXxl3C5Q.png

  8. docker-compose down
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512RYOjqUfLUR.png

    查看Image、container是否有刪除成功
    https://ithelp.ithome.com.tw/upload/images/20240111/20158512zwNZhv7Udx.png


補充:

  • 必須啟動Container,docker-compose images跟docker-compose ps才會有資料
  • 範例程式來源awesome-compose

這邊是透過簡單的docker-compose來做範例,如果想要嘗試更多不同的docker-compose範例,可以到awesome-compose參考,並且自己試試看/images/emoticon/emoticon12.gif


參考資料:
什麼是 Docker Compose
awesome-compose


上一篇
Day18 - 菜鳥們來研究 Docker Compose 的使用
下一篇
Day20 - 菜鳥們把所學的實作做起來 DockerFile 篇
系列文
跟著菜鳥手把手用Docker建立服務30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
obarisk
iT邦研究生 1 級 ‧ 2024-01-12 12:08:25

python 的 docker-compose 還是 docker 的 docker compose?

https://docs.docker.com/compose/migrate/

JJYEN iT邦新手 4 級 ‧ 2024-01-15 20:53:08 檢舉

建議一律都用composeV2版本 docker-compose,畢竟官網說沒針對composeV1版本做更新及維護,感謝你的提供資訊,讓我了解有這個資訊/images/emoticon/emoticon12.gif

我要留言

立即登入留言